/**
 * 21/03/2012
 */

package l3.info.Projet.Client;

import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

import l3.info.Projet.Utilitaires.Chiffrement;

/**
 * JDialog permettant d'ajouter un utilisateur que l'on veut suivre
 * @author Loïc Martinez
 * @version 1.0
 */

public class JDAjoutSuivi extends JDialog implements ActionListener {

	private final static String TITRE = "Ajout d'un nouvel utilisateur à suivre";
	private final static String AJOUTER = "Ajouter";
	private final static String ANNULER = "Annuler";
	private final static int LARGEUR = 290;
	private final static int HAUTEUR = 110;
	private final static int ABSCISSE = 480;
	private final static int ORDONNEE = 280;
	private JLabel label;
	private JTextField field;
	private JButton boutonAjout, boutonAnnuler;
	private JPanel panLabel, panBouton;
	private int id = -1;
	
	public JDAjoutSuivi() {
		setProperties();
		addComponents(FlowLayout.CENTER, "Utilisateur");
		setEnter();
		setVisible(true);
	}
	
	/**
	 * Configuration des propriétés de la JFrame
	 */
	private void setProperties() {
		setTitle(TITRE);
		setBounds(ABSCISSE, ORDONNEE, LARGEUR, HAUTEUR);
		setResizable(false);
		setModal(true);
		getContentPane().setLayout(new FlowLayout());
		setDefaultCloseOperation(DISPOSE_ON_CLOSE);
	}

	/**
	 * Ajout du label et du bouton
	 * @param alignement, la position des éléments
	 * @param erreur, la valeur du JLabel
	 */
	private void addComponents(int alignement, String textLabel) {
		panLabel = new JPanel(new FlowLayout(alignement));
		panLabel.setPreferredSize(new Dimension(LARGEUR, 30));
		label = new JLabel(textLabel);
		panLabel.add(label);
		
		field = new JTextField(10);
		panLabel.add(field);
		
		add(panLabel);

		panBouton = new JPanel(new FlowLayout(alignement));
		panBouton.setPreferredSize(new Dimension(LARGEUR, 50));
		boutonAjout = new JButton(AJOUTER);
		boutonAjout.addActionListener(this);
		
		panBouton.add(boutonAjout);
		
		boutonAnnuler = new JButton(ANNULER);
		boutonAnnuler.addActionListener(this);
		
		panBouton.add(boutonAnnuler);
		
		add(panBouton);
	}

	/**
	 * Si on appuie sur Entrée, alors ça déclenche le listener
	 * du bouton boutonAjout
	 */
	public void setEnter() {
		getRootPane().setDefaultButton(boutonAjout);
	}
	
	/**
	 * @return l'id entré si valide, -1 sinon
	 */
	public int getId() {
		return id;
	}
	
	/**
	 * Quand l'on créé un évènement
	 * @param ev, l'évènement déclenché
	 */
	public void actionPerformed(ActionEvent ev) {
		if (ev.getSource() == boutonAjout) {
			if (field.getText().length() == 0) {
				new JDLoginError("Champ vide !");
				field.setText("");
				// On remet le focus sur le champ Id
				field.requestFocusInWindow();
			} else {
				try {
					id = Integer.parseInt(field.getText());
					dispose();
				} catch (NumberFormatException e) {
					new JDLoginError("L'identifiant doit être un entier !");
					field.setText("");
					// On remet le focus sur le champ Id
					field.requestFocusInWindow();
				}
			}
		} else if (ev.getSource() == boutonAnnuler) {
			dispose();
		}
	}

}
